package com.example.demo.controller;

import com.example.demo.entity.ReturnData;
import com.example.demo.entity.Stu;
import com.example.demo.mapper.StuMapper;
import com.example.demo.service.StuServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author lands
 * @Date 2024/10/22 10:13
 * @Description TODO
 */
@RestController //告诉springboot框架，这是一个接口文件
@RequestMapping("plus")//避免接口重名
public class StuController {


    @Autowired
    StuServer stuServer;

    //查询所有学生接口
    @GetMapping("getList")
    ReturnData getList(String name, int age, String no){
        System.out.println("进入接口处理");
        return stuServer.getList(name,age,no);
    }

    //删除学生接口
    @PostMapping("deleteStu")
    ReturnData deleteStu(int id){
        return stuServer.deleteStu(id);
    }

    //删除学生接口,用的是xml文件的方式删除
    @PostMapping("deleteStuXml")
    int deleteStuXml(int id){
        return stuServer.deleteStuXml(id);
    }
    //    插入学生  新增学生接口
    @PostMapping("/addStu")
    ReturnData add(String name,int age,String no){
        return stuServer.add(name,age,no);
    }
    //    用xml方式插入学生  新增学生接口
    @PostMapping("/addStuXml")
    int addStuXml(String name,int age,String no){
        return stuServer.addStuXml(name,age,no);
    }


//    用来测试 mybatis-plus 编写mybatis方法

    @GetMapping("getListByName")
    Stu getListByName(String name){
        return stuServer.selectByName(name);
    }
//    用xml文件的方式查询所有学生
    @GetMapping("getAllList")
    List<Stu> getAllList(){
        return stuServer.getAllList();
    }

    //  更新学生接口  用的xml编写数据库语句的方法
    @PostMapping("/updateXml")
    int updateXml(String name,int age,String no,int id){
        return stuServer.updateXml(name,age,no,id);
    }
    //  更新学生接口  用的Mybatis-Plus内置方法实现更新
    @PostMapping("/updatePlus")
    int updatePlus(@RequestBody Stu stu){
        return stuServer.updatePlus(stu);
    }
    @GetMapping("getStuByAge")
    List<Stu> getStuByAge(int age){
        return stuServer.getStuByAge(age);
    }

    @PostMapping("/uploadAvatar")
    ReturnData uploadAvatar(int id, MultipartFile file){
        return stuServer.uploadAvatar(id,file);
    }

}
